import threading
from threading import Thread
import time

1 函数创建线程
def test():
    for i in range(3):
      time.sleep(1)
      print(f'线程：{threading.current_thread().name}正在执行{i}')

# 如下是一个进程，包含一个主线程，和俩个子线程
# 三个线程并行执行，主线程执行main代码，子线程执行test代码
# 三个线程又是并发执行，谁先执行不一定，尤其是两个子线程的交替执行很明显
if __name__ == '__main__':
    time_start = time.time()
    print('主线程开始执行')    # 线程构成进程

    # 创建线程
    lst = [Thread(target=test) for i in range(2)]   # 创建2个线程

    for item in lst:    # item的数据类型是Thread类型
        # 启动线程
        item.start()

    for item in lst:
        item.join()
    print (f'一共耗时：{time.time() - time_start}')
print('-'*50)

#2 继承式创建线程
class SubThread(Thread):
    def run(self):
        for i in range(3):
            time.sleep(1)
            print(f'线程：{threading.current_thread().name}正在执行{i}')

if __name__ == '__main__':
    print('主线程开始执行')
    lst = [SubThread() for i in range(2)]
    for item in lst:
        item.start()

    for item in lst:
        item.join()
    print('主线程执行结束')
